package cn.xxi.ai.config;

import com.github.yitter.contract.IdGeneratorOptions;
import com.github.yitter.idgen.YitIdHelper;
import jakarta.annotation.PostConstruct;
import org.springframework.stereotype.Component;

/**
 * 雪花 ID 生成器（适用于 Spring + MyBatis 或 JPA 可替换）
 * 初始化 YitIdHelper，提供 Long 类型 ID
 *
 * @author bingo
 */
@Component
public class IdGenerator {

    @PostConstruct
    public void init() {
        // 初始化雪花 ID 生成器配置（默认配置）
        IdGeneratorOptions options = new IdGeneratorOptions();
        YitIdHelper.setIdGenerator(options);
    }

    /**
     * 生成唯一主键 ID（Long 类型）
     *
     * @return 雪花 ID
     */
    public Long generateId() {
        return YitIdHelper.nextId();
    }
}